#include "StdAfx.h"
#include "pixelCalc.h"
#include "pixelStorage.h"

PixelStorage::PixelStorage(void)
{
}

PixelStorage::~PixelStorage(void)
{
}

/*
Wenn schwarzen Pixel gefunden, einem Objekt zuzuordnen.
Setze eine Quadrat um diesen Pixel und suche darin hellste
und dunkelste Punkte mittels minMaxHue();
*/
void PixelStorage::findObject(void)
{
  PixelCalc p;
  PixelStorage pS;
  Mat grayImage;

  /*In Graustufen umwandeln*/
  cvtColor(pS.image, grayImage, CV_BGR2GRAY);
  
  /*Schwellenwert ermitteln*/
  threshold(pS.image, outImage, 128,  255, THRESH_BINARY);

  for(int i = 0; i < outImage.rows; i++)
  {
   for(int j = 0; j < outImage.cols; j++)
   {
	   pS.pixelValue = outImage.at<int>(i,j);
     if (pS.pixelValue == 1)
	 {
		 if ((i+50) <= outImage.rows) {
             pS.posY2 = i+50;
		   }
		   else {
             pS.posY2 = outImage.rows;
		   }
		   if ((i-50) >= 0) {
             pS.posY1 = i-50;
		   }
		   else {
			 pS.posY1 = 0;
		   }
           if ((j+50) <= outImage.cols) {
             pS.posX2 = j+50;
		   }
		   else {
             pS.posX2 = outImage.cols;
		   }
		   if ((j-50) >= 0) {
             pS.posX1 = j-50;
		   }
		   else {
			 pS.posX1 = 0;
		   }
		   /* 
		   maximale und minmale Helligkeit in aktuellem Bildausschnitt,
		   wenn schwarzen Pixel entdeckt
		   */
		   p.minMaxHue(pS);
	 }
   }
  }
}
